/**
 * @file LogEventWrap.h
 * @author  haifeng (haifengxiao@icloud.com)
 * @brief
 * @version 0.1
 * @date 2021-07-06
 *
 * @copyright Copyright (c) 2021
 *
 */

#pragma once

#include <sstream>

#include "LogEvent.h"

namespace Chen {
    namespace Log {

        class LogEventWrap {
        public:

            /**
             * @brief Construct a new Log Event Wrap object
             *
             * @param event
             */
            LogEventWrap(LogEvent::ptr event);

            /**
             * @brief Destroy the Log Event Wrap object
             *
             */
            ~LogEventWrap();

            /**
             * @brief Get the Log Event object
             *
             * @return LogEvent::ptr
             */
            LogEvent::ptr getLogEvent() const { return m_event; }

            /**
             * @brief
             *
             * @return std::stringstream&
             */
            std::stringstream& getSS();

        private:
            /// log event
            LogEvent::ptr m_event;
        };

    }//namespace Log
}//namespace Chen
